# -*- coding: utf-8 -*-
"""
@Time    : 2024/6/27 19:07 
@Author  : ZhangShenao 
@File    : any_params.py 
@Desc    : 使用*args和**kwargs实现任意参数
"""


def print_msg(msg: str, *args, **kwargs):
    """
    打印信息
    :param msg: 待打印的信息
    :param args: 非关键字可变参数
    :param kwargs: 关键字参数
    """

    # 打印位置参数
    print(f'msg is: {msg}')

    # 打印可变参数
    print(f'type of args is: {type(args)}')  # type of args is: <class 'tuple'>
    print(f'args is: {args}')

    # 打印关键字参数
    print(f'type of kwargs is: {type(kwargs)}')  # type of kwargs is: <class 'dict'>
    print(f'kwargs is: {kwargs}')


if __name__ == '__main__':
    # 调用函数,依次传入位置函数、可变函数和关键字函数
    print_msg('hello world', 1, 2, 3, name='zsa', gender='male', age=18, hobbies=['game', 'reading', 'coding'])
